2021-07-04 Homematic IP Node-RED PIN-Pad
Wohnungstüre per PIN-Eingabe öffnen.
PIN-Pad ohne Elektrotechnikkenntnisse selber bauen.
Für meine Hausautomatisation verwende ich eine
⎇Homematic IP CCU3 und programmiere diese mit
⎇Node-RED bzw.
⎇RedMatic.
Das
⍈Türschloss ist schon automatisiert. Als Erweiterung möchte ich außen an der
Wohnungstüre ein PIN-Feld. Damit wird versehentliches Aussperren
ausgeschlossen. Und Dritte, die in die Wohnung müssen, erhalten anstelle eines
Schlüssels einen personalisierten PIN.
Ich habe mich am Markt etwas umgesehen und nichts passendes gefunden. Von
Homematic IP direkt gibt es nichts. (Update: Mittlerweile schon. Siehe
[1]) Nur solche
⎇Integrationsprojekte von ELV.
Die Meisten (bzw. alle die ich gefunden habe) dieser Zugangssysteme sind nicht
vertrauenerweckend. Mal von den vermutlich unsicheren Funkprotokollen (und bei
meiner Mietwohnung geht nur Funk und Batterie) abgesehen, befindet sich alles
Wissen im PIN-Feld. Draußen. Wo ein Angreifer zugriff hat. Und damit meine ich
nicht theoretische Angriffe, das jemand nen EEPROM ausließt. Braucht er nicht,
wenn schon im Handbuch steht wie die Master-PIN zurückgesetzt werden kann! Dazu
kommt, das diese Zugangssysteme nur Erfolgsmeldungen übertragen. Damit weiß man
das jemand die Türe öffnen möchte, aber nicht wer oder was sonst alles schon
eingegeben wurde. Und zu guter Letzt muss jede Admintätigkeit Vorort am
PIN-Feld gemacht werden.
Hier also nun eine Selbstbaulösung, die all die Probleme vermeidet und keine
Elektrotechnikkenntnisse zur Umsetzung erfordert. Das fertige PIN-Pad hat kein
Wissen über gültige PINs. Es überträgt (dank Homematic IP hoffentlich
vertraulich) schlicht und einfach die gedrückten Tasten. Der Rest wird auf
Seiten der CCU3 verarbeitet. Theoretisch könnte man sogar
⎇OTPs implementieren.
Conrad Teileliste:
1x
⎇TRU COMPONENTS SU709948 Folientastatur Tastenfeld Matrix 1 x 12
1x
⎇Strapubox 2006SW 2006SW Universal-Gehäuse 125 x 74 x 27 ABS Schwarz
2x
⎇Homematic IP Kontakt-Schnittstelle HmIP-FCI6
1x
⎇Renkforce JKMM403 Jumper-Kabel Arduino, Banana Pi, Raspberry Pi [40x Drahtbrücken-Stecker - 40x Drahtbrücken-Stecker] 30
1x
⎇Coroplast 302 302-10-BK Isolierband Schwarz (L x B) 10 m x 15 mm
1x Doppelseitiges Klebeband
Werkzeug:
1x Lötkolben samt Lötzinn
1x Abisolierzange oder Dergleichen
1x Eine Möglichkeit Plastik zu bearbeiten. Zum Beispiel mit einem Dremel.
1x Schere
1x Messer
1x Kreuzschlitzschraubendreher
Das sind natürlich alles nur Vorschläge. Bei einem Neubau würde ich vermutlich
Schrumpfschlauch anstelle von Isolierband nehmen. Anstelle der Jumper-Kabel
könnte man auch solche PIN-Header-Reihen verwenden.
Was vor sich geht
Die
⎇Homematic IP Kontakt-Schnittstelle HmIP-FCI6 ermöglicht das Erkennen von
potentialfreien Kontaktschließungen an bis zu sechs Kontakten. Schließt sich
ein Kreislauf zwischen Masse(GND) und einem der Kontakte, wird gemeldet welcher
Kontakt es war. (Parallele Kontaktschließungen werden nicht erkannt! Weswegen
für dieses Projekt zwei HmIP-FCI6 und eine Tastatur mit einer 1x12 Matrix nötig
sind.) Die in der Teileliste aufgeführte Tastatur hat eine sogenannte 1x12
Matrix. Die Tastatur hat einen Anschluss mit 13 Buchsen. Einmal Masse
(GND) und für jede Taste einen Leiter.
Man muss die schwarzen GND-Kabel der beiden HmIP-FCI6 zu Einem verbinden und an
den Tastatur-Anschluss anbringen. Und zwar an der Seite, an dem die Teilenummer
steht.
Die übrigen Kabel können dann frei zugeordnet werden. Die Ziffern am Anschluss
sind durcheinander. Man sollte sich also nicht lange damit aufhalten, was wo
hin kommt. Man ordnet später in Software zu, was was ist.
Dass das Jumper-Kabel so übereinander liegt, würde ich bei einem Neubau nicht
mehr machen. Es wurde mit Deckel dann sehr eng. Dafür war es leicht zu löten.
Nicht schön, aber selten.
Spätestens jetzt einmal alles Testen. Alle Tasten durchgehen. Aufschreiben
welcher Topic bei welcher Taste reagiert hat. Prüfen das jeder Topic einmalig
ist.
Empfohlene Kanaleinstellungen:
Und ja, da es Taster sind, muss man leider zwölfmal ein leeres Programm in der CCU3 anlegen, damit die Signale in Node-RED ankommen.
Achtung: Das Klebeband auf der Rückseite der Folientastatur ist sehr stark. Man
hat im Grunde nur einen Versuch sie gescheit auszurichten.
Bevor man das Kästchen irgendwo anbringt, natürlich sicherstellen das die
Softwareseite in Ordnung ist.
Hier zwei Node-RED Funktionen, mit denen hoffentlich jeder starten kann.
Download: PIN-Pad_v1.json
Die Funktion PIN-Feld sammelt eingegebene Nummer, bis die #-Taste gedrückt
wird. Dann gibt sie sie als Zeichenkette aus. Die Taste * löschte die zuvor
eingegeben Nummern komplett. Sie drückt man also, wenn man sich vertippt hat
und beginnt dann mit der PIN-Eingabe von vorne. Wird die Eingabe für mehr als
10 Sekunden unterbrochen, wird das bisher Eingegebene ebenfalls verworfen.
In der Funktion findet auch die Zuordnung der Topics zu den Tasten statt. Der
Quelltext ist hoffentlich selbsterklärend genug.
In der Funktion Login kann man Benutzer und deren PINs hinterlegen. Ein
erfolgreicher "Login" führt auf Ausgang 1 zu einer Statusmeldung, bei dem der
eintretende Benutzer angegeben wird. Auf Ausgang 2 wird der Türschlossantrieb
zum öffnen aufgefordert.
Bei einer unbekannten PIN, erfolgt auf Ausgang 1 lediglich entsprechend eine
negative Statusmeldung.
[1] Mittlerweile gibt es von Homematic dieses
⎇Keypad HmIP-WKP, auf das die beschriebenen Sicherheitsprobleme von angeflanschten Drittlösungen nicht zutreffen. Die Eigenlösung bleibt die flexibelste Lösung. Wobei man Zugeben muss, das HmIP-WKP den Vorteil hat, das es Dank Direktverknüpfung auch bei Stromausfall oder defekter CCU3 weiter funktioniert.
⍈Homepage